-
Notifications
You must be signed in to change notification settings - Fork 900
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use a higher timeout for publishing #7923
Conversation
A 30s timeout is too low when uploading a large package over a home internet connection, where uploads can be 10x slower than downloads. We increase the default limit to 15min, while keeping the environment variables to override this intact. In the process, I've lifted the conversion of the timeout seconds to `Duration` up. `Duration::from_mins` is nightly only so we don't quite get the benefit yet. Fixes #7809
IIUC, this value shouldn't be the end-to-end timeout duration though, it's the time between client-server interactions. |
Speculating, but could it be the timeout goes wrong here because we're doing an upload and get the first server read only after the whole upload is done? |
It'd be nice to know what's going on instead of just bumping the read timeout to 15 minutes |
It looks like the reqwest bug seanmonstar/reqwest#2403, since we would need to set a write timeout and reqwest doesn't support that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's open an issue to track a better solution, probably makes sense to get this to users immediately though.
Done: #7925 |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.4.18` -> `0.4.20` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.4.20`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0420) [Compare Source](astral-sh/uv@0.4.19...0.4.20) ##### Enhancements - Add managed downloads for CPython 3.13.0 (final) ([#​8010](astral-sh/uv#8010)) - Python 3.13 is the default version for `uv python install` ([#​8010](astral-sh/uv#8010)) - Hint at wrong endpoint in `uv publish` failures ([#​7872](astral-sh/uv#7872)) - List available scripts when a command is not specified for `uv run` ([#​7687](astral-sh/uv#7687)) - Fill in `authors` field during `uv init` ([#​7756](astral-sh/uv#7756)) ##### Documentation - Add snapshot testing to contribution guide ([#​7882](astral-sh/uv#7882)) - Fix and improve GitLab integration docs ([#​8000](astral-sh/uv#8000)) ### [`v0.4.19`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0419) [Compare Source](astral-sh/uv@0.4.18...0.4.19) ##### Enhancements - Add managed downloads for CPython 3.13.0rc3 and 3.12.7 ([#​7880](astral-sh/uv#7880)) - Display the target virtual environment path if non-default ([#​7850](astral-sh/uv#7850)) - Preserve case-insensitive sorts in `uv add` ([#​7864](astral-sh/uv#7864)) - Respect project upper bounds when filtering wheels on `requires-python` ([#​7904](astral-sh/uv#7904)) - Add `--script` to `uv run` to treat an input as PEP 723 regardless of extension ([#​7739](astral-sh/uv#7739)) - Improve legibility of build failure errors ([#​7854](astral-sh/uv#7854)) - Show interpreter source during Python discovery query errors ([#​7928](astral-sh/uv#7928)) ##### Configuration - Add `UV_FIND_LINKS` environment variable for `--find-links` ([#​7912](astral-sh/uv#7912)) - Ignore empty string values for `UV_PYTHON` environment variable ([#​7878](astral-sh/uv#7878)) ##### Bug fixes - Allow `py3x-none` tags in newer than Python 3.x ([#​7867](astral-sh/uv#7867)) - Allow self-dependencies in the `dev` section ([#​7943](astral-sh/uv#7943)) - Always ignore `cp2` wheels in resolution ([#​7902](astral-sh/uv#7902)) - Clear the publish progress bar on retry ([#​7921](astral-sh/uv#7921)) - Fix parsing of `gnueabi` libc variants in Python version requests ([#​7975](astral-sh/uv#7975)) - Simplify supported environments when comparing to lockfile ([#​7894](astral-sh/uv#7894)) - Trim commits when reading from Git refs ([#​7922](astral-sh/uv#7922)) - Use a higher HTTP read timeout when publishing packages ([#​7923](astral-sh/uv#7923)) - Remove the first empty line for `uv tree --package foo` ([#​7885](astral-sh/uv#7885)) ##### Documentation - Add 3.13 support to the platform reference ([#​7971](astral-sh/uv#7971)) - Clarify project environment creation ([#​7941](astral-sh/uv#7941)) - Fix code block title in Gitlab integration docs ([#​7861](astral-sh/uv#7861)) - Fix project guide section on adding a Git dependency ([#​7916](astral-sh/uv#7916)) - Fix uninstallation command for Windows ([#​7944](astral-sh/uv#7944)) - Clearly specify the minimum supported Windows Server version ([#​7946](astral-sh/uv#7946)) ##### Rust API - Remove unused `Sha256Reader` ([#​7929](astral-sh/uv#7929)) - Remove unnecessary `Deserialize` derives on settings ([#​7856](astral-sh/uv#7856)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
A 30s timeout is too low when uploading a large package over a home internet connection, where uploads can be 10x slower than downloads. We increase the default limit to 15min, while keeping the environment variables to override this intact.
In the process, I've lifted the conversion of the timeout seconds to
Duration
up.Duration::from_mins
is nightly only so we don't quite get the benefit yet.Fixes #7809